1. Field of the Invention
The present invention relates generally to software objects, and in particular, to a method, apparatus, and article of manufacture for providing display representations and streams for objects with authorable and dynamic behaviors and appearances for computer programs.
2. Description of the Related Art
The use of Computer Assisted Drafting (CAD) application programs is well known in the art. Some CAD programs provide templates and palettes that help users create documents, graphical presentations, etc. However, these templates and palettes provide only limited assistance and do little to help the user connect standard CAD components, define new components, or define methods of manipulating the components within the CAD program.
Most standard components are predefined by the CAD program itself, leaving little room for the user to define custom shapes without using the predefined standard components as building blocks. A user must manipulate standard components to define a shape or outline, place them spatially proximate on a working screen, and then group them together using a grouping or wrapping function. This multiple step approach of dragging components onto the screen and then modifying the components to create a new shape or outline within a document is inefficient and time consuming.
As an example, traditional CAD systems have produced drawings out of primitive geometric shapes like Lines, Arcs, or Circles. However, plans for a typical building would consist of many separate drawings, each one showing a different xe2x80x9cviewxe2x80x9d or xe2x80x9crepresentationxe2x80x9d of the building. Each one of these representations is tailored to communicate different types of information to the reader and these representations have become standardized in the United States Architecture and Construction community because of their longstanding use. However, standardized symbols used in the United States are either modified or mean different things when the drawings are used internationally, making work on international construction projects difficult.
Recently, object-oriented CAD systems have been introduced that allow for geometric primitives at a higher level than Line, Arc, and Circle. It is now possible to introduce a single object into the drawing, such as a door, which is capable of drawing itself in different ways when asked to do so. While this might be enough to satisfy simple changes, it is not extensible enough to allow a single building model to be constructed and viewed around the world. In addition, each object has to respond to other xe2x80x9cgraphicxe2x80x9d requests from the CAD system besides just drawing itself. For example, the CAD system will want to know object snap points, object intersection points, the volume of an object, what an object looks like in various cross-sections, and the contents of a given high level object, e.g., the primitive Lines, Arcs, and Circles that could be used to represent this in the absence of the object itself.
These requirements make adding a new display representation extremely expensive because, for each representation, every object must account for every other object""s behavior in the CAD system. Further, new display representations are typically not customizable by users or other software developers.
Consequently, there is a need in the art for improved techniques for creating components in a CAD program, in order to create documents faster. Further, there is a need in the art for techniques for direct manipulation of software objects. There is also a need in the art for representing the same object in different views for related CAD drawings.
To address the requirements described above, the present invention discloses a method, apparatus, and article of manufacture for enabling the creation of authorable, dynamic software objects. An apparatus made in accordance with the present invention comprises a computer and an attached monitor, stream means, display property means, display representation means, and display configuration means. The stream means is performed by the computer and accepts at least one graphic primitive into the software object. The display property means is performed by the computer and stores at least one quality associated with each graphic primitive in the software object. The display representation means is performed by the computer and graphically represents a selected set of display properties of the software object. The display configuration means is performed by the computer and selectively displays one of the sets of graphical representations of the software object on the monitor of the computer.